Most Forward-Error-Correction (FEC) codes are designed to perform under Additive White Gaussian Noise (AWGN). That is, a decoder assumes that noise samples in a received signal are uncorrelated and Gaussian distributed. The performance of these codes can substantially decrease if the noise that is added during transmission over a communication channel is actually correlated. Error decorrelators can be added to a FEC encoder and decoder to reduce the correlation of noise samples and the resultant data errors, so that coding performance can approach performance under AWGN conditions.
The memory size or depth that is required for data permutation in a conventional error decorrelator increases with the degree of correlation, since decorrelation of errors due to more highly correlated noise involves permutation of larger amounts of data and storage of that data in memory to enable the permutation. In general, the complexity of a conventional error decorrelator is linearly proportional to the throughput of data to be permuted, and is further proportional to the square of the memory depth. Complexity might refer to gate count and/or memory size in hardware, or to code size, code speed, and/or memory footprint of a function in software or firmware, for example. The linear proportionality of complexity to data throughput can be particularly problematic for high-speed communication channels operating at about 40 Gigabits per second (Gbps) and above, for instance.